#ifndef CONSTANTEFACTORY_H
#define CONSTANTEFACTORY_H

//Implementation de la classe ConstanteFactory qui fait partie du design pattern Factory Method et qui delegue l'instanciation de chaque constante aux classes filles

#include <string>
#include <cstdlib>
#include <vector>
#include <stack>
#include <sstream>
#include "operator.h"
#include "constante.h"
#include "calculator.h"
#include "fraction.h"
#include "real.h"
#include "complex.h"
#include "stackadaptor.h"
#include "expression.h"
#include "parserexception.h"
#include <iostream>
using namespace std;


class ConstanteFactory{
public:

 //Cette methode recupere un element de la pile et effectue un traitement afin de determiner de quel type d'operation il s'agit.
 //Elle permet egalement de verifier qu'il y a le bon nombre d'arguments dans la pile pour effectuer le traitement.

    static void ConstantesFactory(const std::string& s, StackAdaptor& context)throw(DataException,ParserException);
};

#endif // CONSTANTEFACTORY_H
